/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package sni.org.pe.componentes;

import java.util.List;
import javax.faces.context.FacesContext;
import org.primefaces.component.menuitem.MenuItem;
import org.primefaces.component.submenu.Submenu;
import org.primefaces.model.DefaultMenuModel;
import org.primefaces.model.MenuModel;
import sni.org.pe.model.OpcionSistema;
import sni.org.pe.session.remote.OpcionSistemaSessionEJBRemote;
import sni.org.pe.utilitario.Estados;
import sni.org.pe.utilitario.ServiceLocator;
import sni.org.pe.utilitario.UParametro;
import sni.org.pe.utilitario.UProperties;

/**
 *
 * @author Ericson
 */
public class MenuBean {

    private MenuModel mnuModel;
    private FacesContext fc;
    private ServiceLocator sLocator;
    private sni.org.pe.seguridad.MBUsuario mbUsuario;
    private OpcionSistemaSessionEJBRemote ejbOS;

    public MenuBean() {
        mnuModel = new DefaultMenuModel();
        fc = FacesContext.getCurrentInstance();
        sLocator = new ServiceLocator();
        mbUsuario = (sni.org.pe.seguridad.MBUsuario) fc.getExternalContext().getSessionMap().get("mbusuario");
        ejbOS = (OpcionSistemaSessionEJBRemote) sLocator.findServiceRemote(UProperties.getMessage(UParametro.RUTA_JNDI, "OPCION_SISTEMA"));

        List<OpcionSistema> los = mbUsuario.getUsuario().getIdperfil().getOpcionSistemaList();
        List<OpcionSistema> losMenu = ejbOS.findMenu(Estados.OPCION_SISTEMA_MENU);

        for (int i = 0; i < losMenu.size(); i++) {
            Submenu smenu = new Submenu();
            smenu.setLabel(losMenu.get(i).getNombreopsist());
            smenu.setIcon(losMenu.get(i).getImagenopsist());
            boolean band = false;
            for (int j = 0; j < los.size(); j++) {
                if (los.get(j).getIdpadreopsist().getIdopsist().compareTo(losMenu.get(i).getIdopsist()) == 0) {
                    MenuItem item = new MenuItem();
                    item.setValue(los.get(j).getNombreopsist());
                    item.setUrl(los.get(j).getUrlopsist());
                    item.setIcon(los.get(j).getImagenopsist());
                    item.setAjax(true);
                    smenu.getChildren().add(item);
                    band = true;
                }
            }
            if (band) {
                mnuModel.addSubmenu(smenu);
            }
        }
        
    }

    /**
     * @return the mnuModel
     */
    public MenuModel getMnuModel() {
        return mnuModel;
    }

    /**
     * @param mnuModel the mnuModel to set
     */
    public void setMnuModel(MenuModel mnuModel) {
        this.mnuModel = mnuModel;
    }
}
